package com.cs.beneficios.web.action;
import com.cs.beneficios.business.entity.AtributosDAO;
import com.cs.beneficios.business.entity.RepBeneficioOtorgadoDAO;
import com.cs.beneficios.business.entity.VflexDAO;
//import com.cs.beneficios.business.model.AtributoBeneficiarioVO;
import com.cs.beneficios.business.model.AtributoVO;
import com.cs.beneficios.business.model.CondicionConsultaVO;
import com.cs.beneficios.business.model.RepAtributoVO;
import com.cs.beneficios.business.model.RepBeneficioOtorgadoVO;
import com.cs.beneficios.business.model.VflexVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.beneficios.common.entity.Consultas;
import java.sql.SQLException;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
//import org.apache.struts.action.ActionError;
//import org.apache.struts.action.ActionErrors;
import java.io.IOException;
import javax.servlet.ServletException;

public class SeleccionAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
	//ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	ConnectionFactory cf = new ConnectionFactory();
	Consultas objCons = new Consultas(cf);
	try{
		HttpSession session = request.getSession();
		Object obGenerar = request.getParameter("generar");
		String bandera = "lista";
		if(obGenerar != null)
		{
		  String strcodigo= (String)request.getParameter("generar");
		  request.setAttribute("codsub",strcodigo);
//		  System.err.println(bandera + "1");
		  String strCodsubpro = "";
		  String strCodSede = "";
		  RepBeneficioOtorgadoDAO objBeneOtorDAO;
		  List lbeneotorgado = new LinkedList();
		  lbeneotorgado = (List)session.getAttribute("BeneficiosOtorgado");
		  String posicion = request.getParameter("posicion");
		  boolean elim = false;
          
		  if((Object)lbeneotorgado != null)
		  {
//			System.err.println(bandera + "2");
			if((Object)posicion != null)
			{
//				System.err.println(bandera + "3");
			  int tamanobeneotor = lbeneotorgado.size();
			  int iPosicion=Integer.parseInt(posicion.trim());
			  for(int j=0;j<tamanobeneotor;j++)
			  {
				if(j==iPosicion)
				{
				  RepBeneficioOtorgadoVO objRBOVO = new RepBeneficioOtorgadoVO();
				  objRBOVO = (RepBeneficioOtorgadoVO)lbeneotorgado.get(j);
				  session.setAttribute("fechaInicial",objRBOVO.getDesde());
				  session.setAttribute("fechaFinal",objRBOVO.getHasta());
				  strCodSede = objRBOVO.getCodeSede()+"";
				  break;
				}
			  }
			}
		  }
         
          
//		  System.err.println(bandera + "4");
		  List lFiltrado;
		  Long cont;
          
		  Object obAccion = (Object)request.getParameter("accion");
		  Collection coFiltrado = (Collection)session.getAttribute("ListaFiltrado");
		  Object obListaFil = (Object)session.getAttribute("ListaFiltrado");
//		  System.err.println(bandera + "5");
		  if((Object)coFiltrado != null)
		  {
			String strCodigo = request.getParameter("codigos");
//			System.err.println(bandera + "6");
			if((Object)strCodigo != null)
			{
			  elim = true;
//			  System.err.println(bandera + "7");
			  CondicionConsultaVO objCondiCons = new CondicionConsultaVO();
			  lFiltrado = (List)session.getAttribute("ListaFiltrado");
			  for(int s = 0;s<lFiltrado.size();s++)
			  {
				objCondiCons = (CondicionConsultaVO)lFiltrado.get(s);
				if(objCondiCons.getCodigo().toString().equals(strCodigo))
				{
				  lFiltrado.remove(s);
                  
				}
			  }
      
			}
		  }
          
		  if(!elim)
		  {
		  if(obAccion.equals(""))
		  {
			strCodsubpro = (String)request.getParameter("generar");
            
			lFiltrado = new LinkedList();
            
			String ArrAtri[] = {"TIPO_DOCUMENTO","NUMERO_DOCUMENTO","PRIMER_NOMBRE","SEGUNDO_NOMBRE","PRIMER_APELLIDO","SEGUNDO_APELLIDO","DIRECCION_DESCRIPTIVA","DIRECCION_ENCASILLADA","SEXO","FECHA_NACIMIENTO","VFL_CODIGO_COMUNA","VFL_CODIGO_ZONA","LOCALIZACION_COBAMA","VFL_CODIGO_BARRIO","TELEFONO","ETNIA","CORREO_ELECTRONICO","FICHA_SISBEN","HOGAR_SISBEN","ORDEN_SISBEN","NIVEL_SISBEN","PUNTAJE_SISBEN","FE_ENCUESTA_SISBEN","DISCAPACIDAD_SISBEN"};
			String ArrAtri2[] = {"TIPO DOCUMENTO","NUMERO DOCUMENTO","PRIMER NOMBRE","SEGUNDO NOMBRE","PRIMER APELLIDO","SEGUNDO APELLIDO","DIRECCION DESCRIPTIVA","DIRECCION ENCASILLADA","SEXO","FECHA NACIMIENTO","COMUNA/CORREGIMIENTO","ZONA","LOCALIZACION COBAMA","BARRIO/VEREDA","TELEFONO","ETNIA","CORREO ELECTRONICO","FICHA SISBEN","HOGAR SISBEN","ORDEN SISBEN","NIVEL SISBEN","PUNTAJE SISBEN","FECHA ENCUESTA SISBEN","DISCAPACIDAD SISBEN"};
			List lAtributosBeneficiario = new LinkedList();
			List lAtriBeneficiarios = new LinkedList();
			for(int j=0;j<ArrAtri2.length;j++)
			{
			  RepAtributoVO repatriVO = new RepAtributoVO(); 
              
			  repatriVO.setNombre(ArrAtri[j]);
			  repatriVO.setEtiqueta(ArrAtri2[j]);
			  repatriVO.setOrigen("G");
			  lAtributosBeneficiario.add(repatriVO);
			  if(j!=6 && j!=7)
			  {
				RepAtributoVO repatri2VO = new RepAtributoVO();
				repatri2VO.setNombre(ArrAtri[j]);
				repatri2VO.setEtiqueta(ArrAtri2[j]);
				repatri2VO.setOrigen("G");
				lAtriBeneficiarios.add(repatri2VO);  
			  }
			}
			session.setAttribute("listabeneficiario",lAtributosBeneficiario);
			session.setAttribute("lbeneficiarios",lAtriBeneficiarios);
           
		  }else
		  {
			strCodsubpro = (String)session.getAttribute("generar");
			strCodSede = (String)session.getAttribute("sede");
			System.err.println(bandera + "8");
			String strCodAtributo = (String)request.getParameter("codigo");
			String strNombreAtri = "";
			session.setAttribute("codigo",strCodAtributo);
			Collection coListas = null;
			int espgen = 0;
			int ir = 0;
			if(!strCodAtributo.equals("nulo"))
			{
			  List lVerificarOrigen = (List)session.getAttribute("listabeneficiario");
			  int tamaVerifOrigen = lVerificarOrigen.size();
			  if(tamaVerifOrigen != 0)
			  {
				for(int i=0;i<tamaVerifOrigen;i++)
				{
				  RepAtributoVO VO = (RepAtributoVO)lVerificarOrigen.get(i);
				  String comparacion = VO.getNombre();
				  if(strCodAtributo.equals(comparacion))
				  {
					ir=1;
				  }
				}
			  }
			}
			System.err.println(bandera + "9");
			if(!strCodAtributo.equals("nulo"))
			{
				coListas = new LinkedList();
				//Proceso para llenar la lista de filtrado con los atributos del beneficiario
				if(strCodAtributo.equals("TIPO_DOCUMENTO"))
				{
				  strNombreAtri = "TIPO DOCUMENTO";
				  espgen=1;
				  session.setAttribute("tipodato","A");
				  String Arrlista[] = {"CEDULA CIUDADANIA","CEDULA EXTRANGERIA","NIT","PASAPORTE","REGISTRO CIVIL","TARJETA IDENTIDAD","NIP","NUIP","NISE","CABILDO","OTRO"};
				  String Arrlista2[] = {"C","E","N","P","R","T","I","U","S","A","0"};
				  for(int h=0;h<Arrlista2.length;h++)
				  {
					VflexVO valorVO = new VflexVO(); 
					valorVO.setDescVflex( Arrlista[h]);
					valorVO.setNombreVflex(Arrlista2[h]+"~"+Arrlista[h]);
					valorVO.setCodigoVflex( Arrlista2[h]);
					coListas.add(valorVO);  
				  }
				  session.setAttribute("listavfl",coListas); 
                  
				}else if(strCodAtributo.equals("NUMERO_DOCUMENTO")){
				  strNombreAtri = "NUMERO DOCUMENTO";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas);
				}else if(strCodAtributo.equals("PRIMER_NOMBRE")){
				  strNombreAtri = "PRIMER NOMBRE";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("SEGUNDO_NOMBRE")){
				  strNombreAtri = "SEGUNDO NOMBRE";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("PRIMER_APELLIDO")){
				  strNombreAtri = "PRIMER APELLIDO";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("SEGUNDO_APELLIDO")){
				  strNombreAtri = "SEGUNDO APELLIDO";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("SEXO")){
				  strNombreAtri = "SEXO";
				  espgen=1;
				  session.setAttribute("tipodato","A");
				  String Arrlista[] = {"MASCULINO","FEMENINO"};
				  String Arrlista2[] = {"M","F"};
				  for(int h=0;h<2;h++)
				  {
					VflexVO valorVO = new VflexVO(); 
					valorVO.setDescVflex( Arrlista[h]);
					valorVO.setNombreVflex(Arrlista2[h]+"~"+Arrlista[h]);
					valorVO.setCodigoVflex( Arrlista2[h]);
					coListas.add(valorVO);  
				  }
				  session.setAttribute("listavfl",coListas);             
				}else if(strCodAtributo.equals("FECHA_NACIMIENTO")){
				  strNombreAtri = "FECHA NACIMIENTO";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","F");
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("VFL_CODIGO_COMUNA")){
				  strNombreAtri = "COMUNA/CORREGIMIENTO";
				  espgen=1;
				  session.setAttribute("tipodato","A");
				  String strNomTipoVfl = "COMUNA"; 
				  VflexDAO valorflexDAO = new VflexDAO(cf);
				  try{
					coListas = valorflexDAO.getVflex(strNomTipoVfl);
					cf.closeConnection(valorflexDAO.getConn());
				  }catch(SQLException e){
					e.printStackTrace();
				  }
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("VFL_CODIGO_ZONA")){
				  strNombreAtri = "ZONA";
				  espgen=1;
				  session.setAttribute("tipodato","A");
				  String strNomTipoVfl = "ZONA"; 
				  VflexDAO valorflexDAO = new VflexDAO(cf);
				  try{
					coListas = valorflexDAO.getVflex(strNomTipoVfl);
					cf.closeConnection(valorflexDAO.getConn());
				  }catch(SQLException e){
					e.printStackTrace();
				  }
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("LOCALIZACION_COBAMA")){
				  strNombreAtri = "LOCALIZACION COBAMA";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","N");
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("VFL_CODIGO_BARRIO")){
				  strNombreAtri = "BARRIO/VEREDA";
				  espgen=1;
				  session.setAttribute("tipodato","A");
				  String strNomTipoVfl = "BARRIO"; 
				  VflexDAO valorflexDAO = new VflexDAO(cf);
				  try{
					coListas = valorflexDAO.getVflex(strNomTipoVfl);
					cf.closeConnection(valorflexDAO.getConn());
				  }catch(SQLException e){
					e.printStackTrace();
				  }
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("DIRECCION_DESCRIPTIVA")){
				  strNombreAtri = "DIRECCION DESCRIPTIVA";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("DIRECCION_ENCASILLADA")){
				  strNombreAtri = "DIRECCION ENCASILLADA";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("TELEFONO")){
				  strNombreAtri = "TELEFONO";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("ETNIA")){
				  strNombreAtri = "ETNIA";
				  espgen=1;
				  session.setAttribute("tipodato","A");
				  String Arrlista[] = {"AFROCOLOMBIANO","INDIGENA","OTRA"};
				  String Arrlista2[] = {"A","I","O"};
				  for(int h=0;h<3;h++){
					VflexVO valorVO = new VflexVO(); 
					valorVO.setDescVflex( Arrlista[h]);
					valorVO.setNombreVflex(Arrlista2[h]+"~"+Arrlista[h]);
					valorVO.setCodigoVflex( Arrlista2[h]);
					coListas.add(valorVO);  
				  }
				  session.setAttribute("listavfl",coListas); 
				}else if(strCodAtributo.equals("CORREO_ELECTRONICO")){
				  strNombreAtri = "CORREO ELECTRONICO";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas); 
				}else if (strCodAtributo.equals("FICHA_SISBEN")){
				  strNombreAtri = "FICHA SISBEN";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas); 
				}else if (strCodAtributo.equals("HOGAR_SISBEN")){
				  strNombreAtri = "HOGAR SISBEN";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas);
				}else if (strCodAtributo.equals("ORDEN_SISBEN")){
				  strNombreAtri = "ORDEN SISBEN";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas);
				}else if (strCodAtributo.equals("NIVEL_SISBEN")){
				  strNombreAtri = "NIVEL SISBEN";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas);
				}else if (strCodAtributo.equals("PUNTAJE_SISBEN")){
				  strNombreAtri = "PUNAJE SISBEN";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","A");
				  session.setAttribute("listavfl",coListas);
				}else if (strCodAtributo.equals("FE_ENCUESTA_SISBEN")){
				  strNombreAtri = "FECHA ENCUESTA SISBEN";
				  espgen=1;
				  coListas=null;
				  session.setAttribute("tipodato","F");
				  session.setAttribute("listavfl",coListas);
				}else if (strCodAtributo.equals("DISCAPACIDAD_SISBEN")){
				  strNombreAtri = "DISCAPACIDAD SISBEN";
				  espgen=1;
				  session.setAttribute("tipodato","A");
				  String Arrlista[] = {"SI","NO"};
				  String Arrlista2[] = {"SI","NO"};
				  for(int h=0;h<2;h++){
					VflexVO valorVO = new VflexVO(); 
					valorVO.setDescVflex( Arrlista[h]);
					valorVO.setNombreVflex(Arrlista2[h]+"~"+Arrlista[h]);
					valorVO.setCodigoVflex( Arrlista2[h]);
					coListas.add(valorVO);  
				  }
				  session.setAttribute("listavfl",coListas); 
				}
			   //fin proceso
			  if(obAccion.equals("2"))
			  {
				if(ir==1){
				  Object fil = (Object)session.getAttribute("ListaFiltrado");
				  if(fil!=null)
				  {
					lFiltrado = (List)session.getAttribute("ListaFiltrado");
				  }else
				  {
					lFiltrado = new LinkedList();
				  }
                  
				  CondicionConsultaVO objCondConsVO = new CondicionConsultaVO();
				  objCondConsVO.setCodcampo(strCodAtributo);
				  objCondConsVO.setCampo(strNombreAtri);
				  String strdato =(String)session.getAttribute("tipodato");
				  objCondConsVO.setTipocampo(strdato);
                  
				  objCondConsVO.setOrigen("G");
				  objCondConsVO.setCodigo((lFiltrado.size())+"");       
				  String filtro = request.getParameter("filter");
				  int iFiltro = Integer.parseInt(filtro.trim());
              
				  switch(iFiltro){ 
					case 1: 
						 objCondConsVO.setFiltro("[>=] Mayor o Igual");
						 objCondConsVO.setCodfiltro(">=");
					break;
					case 2: 
						 objCondConsVO.setFiltro("[<=] Menor o Igual");
						 objCondConsVO.setCodfiltro("<=");
					break;
					case 3: 
						 objCondConsVO.setFiltro("[=] Igual a");
						 objCondConsVO.setCodfiltro("=");
					break;
					case 4: 
						 objCondConsVO.setFiltro("[!=] Diferente a");
						 objCondConsVO.setCodfiltro("<>");
					break;
					case 5: 
						 objCondConsVO.setFiltro("[<] Menor");
						 objCondConsVO.setCodfiltro("<");
					break;
					case 6: 
						 objCondConsVO.setFiltro("[>] Mayor");
						 objCondConsVO.setCodfiltro(">");
					break;
					case 7: 
						 objCondConsVO.setFiltro("Entre");
						 objCondConsVO.setCodfiltro("between");
					break;
				  }
				  Object obValorComparar = (Object)request.getParameter("valor");
				  Object obValor2Comparar = (Object)request.getParameter("valor2");
				  if(obValorComparar != null)
				  {
					if(!strdato.equals("F"))
					{
					  objCondConsVO.setValor(request.getParameter("valor"));
					  objCondConsVO.setEtiquetaValor(request.getParameter("valor"));
					}else
					{
					  String strFecha = request.getParameter("valor");
					  String ArrFecha[] = strFecha.split("-");
					  String strvalor = ArrFecha[2]+"/"+ArrFecha[1]+"/"+ArrFecha[0];
					  objCondConsVO.setValor(strvalor);
					  objCondConsVO.setEtiquetaValor(strvalor);
					}
                                    
				  }else
				  {
					String descVflex = request.getParameter("descVflex");
					String codDesc[]= descVflex.split("~");
					objCondConsVO.setValor(codDesc[0]);
					objCondConsVO.setEtiquetaValor(codDesc[1]);
				  }
				  String objValor2 = (String)obValor2Comparar;
				  if(obValor2Comparar != null && !objValor2.equalsIgnoreCase(""))
				  {
					if(!strdato.equals("F"))
					{
					  objCondConsVO.setValor2(request.getParameter("valor2"));
					}else
					{
					  String strFecha = request.getParameter("valor2");
					  String ArrFecha[] = strFecha.split("-");
					  String strvalor = ArrFecha[2]+"/"+ArrFecha[1]+"/"+ArrFecha[0];
					  objCondConsVO.setValor2(strvalor);
                     
					}
                    
				  }
                  
				  lFiltrado.add(objCondConsVO);
				  session.setAttribute("ListaFiltrado",lFiltrado);
				}
			  }   
			}else
			{
//				System.err.println(bandera + "10");
			  session.setAttribute("listavfl",coListas);
			}
            
                
			try
			{
//				System.err.println(bandera + "11");
			  if(!strCodAtributo.equals("nulo"))
			  {
//				System.err.println(bandera + "12");
				if(espgen!=1)
				{
//					System.err.println(bandera + "13");
				  objBeneOtorDAO = new RepBeneficioOtorgadoDAO(cf);
				  coListas = objBeneOtorDAO.getListaAtri(strCodAtributo);
//				  System.err.println(bandera + "14");
			   //   cf.closeConnection(objBeneOtorDAO.getConn());
				  if(coListas.size()==0)
				  {
					coListas=null;
				  }
                  
				   cf.closeConnection(objBeneOtorDAO.getConn());          
//				   System.err.println(bandera + "15");
				  AtributosDAO objAtriDAO = new AtributosDAO(cf);
				  AtributoVO AtriVO = objAtriDAO.GetPropiedadesAtri(strCodAtributo);
//				  System.err.println(bandera + "16");
				  cf.closeConnection(objAtriDAO.getConn());
				  System.err.println("antes de AtriVO.getTipodato()");
				  //proceso para saber el tipo de dato para mostrar el select del filtro
				  String strTipoDato = AtriVO.getTipodato();
//				  System.err.println(bandera + "17");
				  session.setAttribute("tipodato",strTipoDato);
				  //fin proceso
                  
				  if(obAccion.equals("2"))
				  {
					if(ir==0)
					{
					  Object fil = (Object)session.getAttribute("ListaFiltrado");
					  if(fil!=null)
					  {
						lFiltrado = (List)session.getAttribute("ListaFiltrado");
					  }else
					  {
						lFiltrado = new LinkedList();
					  }
                      
					  CondicionConsultaVO objCondConsVO = new CondicionConsultaVO();
					  objCondConsVO.setCampo(AtriVO.getEtiqueta());
					  objCondConsVO.setCodcampo(AtriVO.getCodigo());
					  objCondConsVO.setOrigen("E");
					  objCondConsVO.setTipocampo(AtriVO.getTipodato());
					  String filtro = request.getParameter("filter");
					  int iFiltro = Integer.parseInt(filtro.trim());
					  objCondConsVO.setCodigo((lFiltrado.size())+"");
					  switch(iFiltro){ 
						case 1: 
							 objCondConsVO.setFiltro("[>=] Mayor o Igual");
							 objCondConsVO.setCodfiltro(">=");
						break;
						case 2: 
							 objCondConsVO.setFiltro("[<=] Menor o Igual");
							 objCondConsVO.setCodfiltro("<=");
						break;
						case 3: 
							 objCondConsVO.setFiltro("[=] Igual a");
							 objCondConsVO.setCodfiltro("=");
						break;
						case 4: 
							 objCondConsVO.setFiltro("[!=] Diferente a");
							 objCondConsVO.setCodfiltro("<>");
						break;
						case 5: 
							 objCondConsVO.setFiltro("[<] Menor");
							 objCondConsVO.setCodfiltro("<");
						break;
						case 6: 
							 objCondConsVO.setFiltro("[>] Mayor");
							 objCondConsVO.setCodfiltro(">");
						break;
						case 7: 
							 objCondConsVO.setFiltro("Entre");
							 objCondConsVO.setCodfiltro("between");
						break;
					  }
					  Object obValorComparar = (Object)request.getParameter("valor");
					  Object obValor2Comparar = (Object)request.getParameter("valor2");
					  if(obValorComparar != null)
					  {
						if(!AtriVO.getTipodato().equals("F"))
						{
						  objCondConsVO.setValor(request.getParameter("valor"));
						  objCondConsVO.setEtiquetaValor(request.getParameter("valor"));
						}else
						{
						  String strFecha = request.getParameter("valor");
						  String ArrFecha[] = strFecha.split("-");
						  String strvalor = ArrFecha[2]+"/"+ArrFecha[1]+"/"+ArrFecha[0];
						  objCondConsVO.setValor(strvalor);
						  objCondConsVO.setEtiquetaValor(strvalor);
						}
					  }else
					  {
						String descVflex = request.getParameter("descVflex");
						String codDesc[]= descVflex.split("~");
						objCondConsVO.setValor(codDesc[1]);
						objCondConsVO.setEtiquetaValor(codDesc[1]);
                            
					 //   objCondConsVO.setValor(request.getParameter("descVflex"));
					 //   objCondConsVO.setEtiquetaValor(request.getParameter("descVflex"));
					  }
                      
					  if(obValor2Comparar != null)
					  {
						if(!AtriVO.getTipodato().equals("F"))
						{
						  objCondConsVO.setValor2(request.getParameter("valor2"));
						}else
						{
						  String strFecha = request.getParameter("valor2");
						  String ArrFecha[] = strFecha.split("-");
						  String strvalor = ArrFecha[2]+"/"+ArrFecha[1]+"/"+ArrFecha[0];
						  objCondConsVO.setValor2(strvalor);
                         
						}
					  }
                      
					  lFiltrado.add(objCondConsVO);
					  session.setAttribute("ListaFiltrado",lFiltrado);
					}
				  }
				}else
				{
//					System.err.println(bandera + "18");
				  session.setAttribute("listavfl",coListas);
//				  System.err.println(bandera + "19");
				}
			  }
//			  System.err.println(bandera + "20");
			  session.setAttribute("listavfl",coListas);
			}catch(SQLException e)
			{
			   e.printStackTrace();
			}
            
		  }
          
//		  System.err.println(bandera + "21");
		  session.setAttribute("generar",strCodsubpro);
		  session.setAttribute("sede",strCodSede);
		  List lListaAtributos = new LinkedList();
          
		  //lListaAtributos = objCons.getAtributoEspecificos(strCodsubpro,1);
		  RepBeneficioOtorgadoDAO BeneOtorDAO = new RepBeneficioOtorgadoDAO(cf);
		  try{
//			System.err.println(bandera + "22");
			lListaAtributos = BeneOtorDAO.getAtributoEspecificos(strCodsubpro);
//			System.err.println(bandera + "23");
			cf.closeConnection(BeneOtorDAO.getConn());
			session.setAttribute("listaatributos",lListaAtributos);
		  }catch(SQLException e)
		  {
			e.printStackTrace();
		  }
		  }//OJO PRUEBA
		  return mapping.findForward("success");
		}else
		{
		  request.setAttribute("msg3","Por favor seleccione una opcion para generar el reporte");
		  return mapping.findForward("regresar");
		}
	}finally
	{
	  try{
		cf.closeConnection(objCons.getConn());
	  }catch(SQLException e)
	  {
		e.printStackTrace();
	  }
	}
  }
}